Skip to content

Experiment: add moveBefore rather than insertBefor when available#5161

Merged
JoviDeCroock merged 2 commits into
mainfrom
experiment-move-before
Jul 17, 2026
Merged

Experiment: add moveBefore rather than insertBefor when available#5161
JoviDeCroock merged 2 commits into
mainfrom
experiment-move-before

Conversation

@JoviDeCroock

@JoviDeCroock JoviDeCroock commented Jul 16, 2026

Copy link
Copy Markdown
Member

One issue is that the selection-range is reset when moveBefore is used, heh looks like we found a browser bug https://stackblitz.com/edit/vitejs-vite-k5ibmktp?file=index.html,src%2Fmain.js,src%2Fstyle.css&terminal=dev - browser bug is solved!

Resolves #3242

@github-actions

github-actions Bot commented Jul 16, 2026

Copy link
Copy Markdown

📊 Tachometer Benchmark Results

Summary

⏳ Benchmarks are currently running. Results below are out of date.

duration

  • create10k: unsure 🔍 -0% - +1% (-3.54ms - +4.27ms)
    preact-local vs preact-main
  • filter-list: unsure 🔍 -0% - +0% (-0.08ms - +0.01ms)
    preact-local vs preact-main
  • hydrate1k: unsure 🔍 -3% - +1% (-1.58ms - +0.66ms)
    preact-local vs preact-main
  • many-updates: unsure 🔍 -1% - +2% (-0.24ms - +0.31ms)
    preact-local vs preact-main
  • replace1k: unsure 🔍 -2% - +1% (-1.32ms - +0.51ms)
    preact-local vs preact-main
  • text-update: slower ❌ 1% - 9% (0.02ms - 0.18ms)
    preact-local vs preact-main
  • todo: unsure 🔍 -1% - +1% (-0.39ms - +0.33ms)
    preact-local vs preact-main
  • update10th1k: unsure 🔍 -3% - +4% (-1.07ms - +1.23ms)
    preact-local vs preact-main

usedJSHeapSize

  • create10k: unsure 🔍 +0% - +0% (+0.00ms - +0.01ms)
    preact-local vs preact-main
  • filter-list: unsure 🔍 +0% - +0% (+0.00ms - +0.01ms)
    preact-local vs preact-main
  • hydrate1k: unsure 🔍 -3% - +2% (-0.16ms - +0.09ms)
    preact-local vs preact-main
  • many-updates: unsure 🔍 +0% - +0% (+0.00ms - +0.01ms)
    preact-local vs preact-main
  • replace1k: unsure 🔍 +0% - +0% (+0.00ms - +0.01ms)
    preact-local vs preact-main
  • text-update: unsure 🔍 -3% - +2% (-0.03ms - +0.02ms)
    preact-local vs preact-main
  • todo: unsure 🔍 +0% - +0% (+0.00ms - +0.00ms)
    preact-local vs preact-main
  • update10th1k: unsure 🔍 -0% - +0% (-0.01ms - +0.01ms)
    preact-local vs preact-main

Results

⏳ Benchmarks are currently running. Results below are out of date.
create10k

duration

VersionAvg timevs preact-localvs preact-main
preact-local745.56ms - 750.35ms-unsure 🔍
-0% - +1%
-3.54ms - +4.27ms
preact-main744.50ms - 750.68msunsure 🔍
-1% - +0%
-4.27ms - +3.54ms
-

usedJSHeapSize

VersionAvg timevs preact-localvs preact-main
preact-local19.07ms - 19.07ms-unsure 🔍
+0% - +0%
+0.00ms - +0.01ms
preact-main19.07ms - 19.07msunsure 🔍
-0% - -0%
-0.01ms - -0.00ms
-
filter-list

duration

VersionAvg timevs preact-localvs preact-main
preact-local16.45ms - 16.51ms-unsure 🔍
-0% - +0%
-0.08ms - +0.01ms
preact-main16.48ms - 16.55msunsure 🔍
-0% - +0%
-0.01ms - +0.08ms
-

usedJSHeapSize

VersionAvg timevs preact-localvs preact-main
preact-local1.56ms - 1.56ms-unsure 🔍
+0% - +0%
+0.00ms - +0.01ms
preact-main1.55ms - 1.56msunsure 🔍
-0% - -0%
-0.01ms - -0.00ms
-
hydrate1k

duration

VersionAvg timevs preact-localvs preact-main
preact-local55.77ms - 57.31ms-unsure 🔍
-3% - +1%
-1.58ms - +0.66ms
preact-main56.19ms - 57.81msunsure 🔍
-1% - +3%
-0.66ms - +1.58ms
-

usedJSHeapSize

VersionAvg timevs preact-localvs preact-main
preact-local4.97ms - 5.12ms-unsure 🔍
-3% - +2%
-0.16ms - +0.09ms
preact-main4.97ms - 5.18msunsure 🔍
-2% - +3%
-0.09ms - +0.16ms
-
many-updates

duration

VersionAvg timevs preact-localvs preact-main
preact-local16.09ms - 16.57ms-unsure 🔍
-1% - +2%
-0.24ms - +0.31ms
preact-main16.16ms - 16.43msunsure 🔍
-2% - +1%
-0.31ms - +0.24ms
-

usedJSHeapSize

VersionAvg timevs preact-localvs preact-main
preact-local3.74ms - 3.75ms-unsure 🔍
+0% - +0%
+0.00ms - +0.01ms
preact-main3.74ms - 3.74msunsure 🔍
-0% - -0%
-0.01ms - -0.00ms
-
replace1k
  • Browser: chrome-headless
  • Sample size: 100
  • Built by: CI #5679
  • Commit: 0273151

duration

VersionAvg timevs preact-localvs preact-main
preact-local57.52ms - 58.70ms-unsure 🔍
-2% - +1%
-1.32ms - +0.51ms
preact-main57.81ms - 59.21msunsure 🔍
-1% - +2%
-0.51ms - +1.32ms
-

usedJSHeapSize

VersionAvg timevs preact-localvs preact-main
preact-local3.01ms - 3.02ms-unsure 🔍
+0% - +0%
+0.00ms - +0.01ms
preact-main3.01ms - 3.01msunsure 🔍
-0% - -0%
-0.01ms - -0.00ms
-

run-warmup-0

VersionAvg timevs preact-localvs preact-main
preact-local29.66ms - 30.42ms-unsure 🔍
-3% - +1%
-0.85ms - +0.26ms
preact-main29.93ms - 30.74msunsure 🔍
-1% - +3%
-0.26ms - +0.85ms
-

run-warmup-1

VersionAvg timevs preact-localvs preact-main
preact-local34.77ms - 36.19ms-unsure 🔍
-4% - +2%
-1.39ms - +0.65ms
preact-main35.11ms - 36.59msunsure 🔍
-2% - +4%
-0.65ms - +1.39ms
-

run-warmup-2

VersionAvg timevs preact-localvs preact-main
preact-local31.00ms - 32.21ms-unsure 🔍
-3% - +3%
-0.84ms - +0.83ms
preact-main31.03ms - 32.19msunsure 🔍
-3% - +3%
-0.83ms - +0.84ms
-

run-warmup-3

VersionAvg timevs preact-localvs preact-main
preact-local26.99ms - 27.43ms-unsure 🔍
-1% - +1%
-0.27ms - +0.34ms
preact-main26.98ms - 27.38msunsure 🔍
-1% - +1%
-0.34ms - +0.27ms
-

run-warmup-4

VersionAvg timevs preact-localvs preact-main
preact-local24.26ms - 25.83ms-unsure 🔍
-5% - +4%
-1.37ms - +0.91ms
preact-main24.45ms - 26.10msunsure 🔍
-4% - +5%
-0.91ms - +1.37ms
-

run-final

VersionAvg timevs preact-localvs preact-main
preact-local21.12ms - 21.47ms-unsure 🔍
-1% - +1%
-0.30ms - +0.21ms
preact-main21.15ms - 21.52msunsure 🔍
-1% - +1%
-0.21ms - +0.30ms
-
text-update
  • Browser: chrome-headless
  • Sample size: 210
  • Built by: CI #5679
  • Commit: 0273151

duration

VersionAvg timevs preact-localvs preact-main
preact-local2.14ms - 2.26ms-slower ❌
1% - 9%
0.02ms - 0.18ms
preact-main2.04ms - 2.15msfaster ✔
1% - 8%
0.02ms - 0.18ms
-

usedJSHeapSize

VersionAvg timevs preact-localvs preact-main
preact-local1.01ms - 1.04ms-unsure 🔍
-3% - +2%
-0.03ms - +0.02ms
preact-main1.01ms - 1.05msunsure 🔍
-2% - +3%
-0.02ms - +0.03ms
-
todo

duration

VersionAvg timevs preact-localvs preact-main
preact-local33.02ms - 33.40ms-unsure 🔍
-1% - +1%
-0.39ms - +0.33ms
preact-main32.93ms - 33.54msunsure 🔍
-1% - +1%
-0.33ms - +0.39ms
-

usedJSHeapSize

VersionAvg timevs preact-localvs preact-main
preact-local1.27ms - 1.27ms-unsure 🔍
+0% - +0%
+0.00ms - +0.00ms
preact-main1.26ms - 1.26msunsure 🔍
-0% - -0%
-0.00ms - -0.00ms
-
update10th1k

duration

VersionAvg timevs preact-localvs preact-main
preact-local31.99ms - 33.55ms-unsure 🔍
-3% - +4%
-1.07ms - +1.23ms
preact-main31.85ms - 33.54msunsure 🔍
-4% - +3%
-1.23ms - +1.07ms
-

usedJSHeapSize

VersionAvg timevs preact-localvs preact-main
preact-local2.97ms - 2.98ms-unsure 🔍
-0% - +0%
-0.01ms - +0.01ms
preact-main2.96ms - 2.98msunsure 🔍
-0% - +0%
-0.01ms - +0.01ms
-

tachometer-reporter-action v2 for CI

@github-actions

Copy link
Copy Markdown

Size Change: +58 B (+0.37%)

Total Size: 15.8 kB

📦 View Changed
Filename Size Change
dist/preact.mjs 4.89 kB +58 B (+1.2%)
ℹ️ View Unchanged
Filename Size
compat/dist/compat.mjs 3.87 kB
debug/dist/debug.mjs 3.89 kB
devtools/dist/devtools.mjs 274 B
hooks/dist/hooks.mjs 1.55 kB
jsx-runtime/dist/jsxRuntime.mjs 861 B
test-utils/dist/testUtils.mjs 473 B

compressed-size-action

@coveralls

coveralls commented Jul 16, 2026

Copy link
Copy Markdown

Coverage Status

coverage: 98.534% (+0.002%) from 98.532% — experiment-move-before into main

@JoviDeCroock
JoviDeCroock marked this pull request as ready for review July 16, 2026 15:28
@JoviDeCroock
JoviDeCroock force-pushed the experiment-move-before branch from aa041aa to cecbb12 Compare July 16, 2026 16:05
@JoviDeCroock
JoviDeCroock force-pushed the experiment-move-before branch from cecbb12 to 0273151 Compare July 16, 2026 16:06
@JoviDeCroock
JoviDeCroock merged commit 47a4ed9 into main Jul 17, 2026
13 checks passed
@JoviDeCroock
JoviDeCroock deleted the experiment-move-before branch July 17, 2026 05:39
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

Focus is lost during list re-order

3 participants